package Service;

import java.io.Serializable;
import java.net.URL;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import DAO.DAOFavoris;
import DAO.DAOHistorique;
import DAO.DAOPageAccueil;
import Modele.CollectionFavoris;
import Modele.CollectionHistorique;
import Modele.Factory;
import Modele.IFavoris;
import Modele.IHistorique;
import Modele.IPageAccueil;


public class GestionNavigation implements Serializable, IGestionNavigation {

	/**
     * 
     */
    private static final long serialVersionUID = 1L;

    CollectionHistorique collDhisto;

	CollectionFavoris listefav;
	IPageAccueil pg;

	@Override
	public List<IHistorique> getListeHistorique() {
		return this.collDhisto.getListeHisto();
	}

	@Override
	public void supprimerHistorique(int index) {
		collDhisto.deleteHistorique(index);
	}

	@Override
	public void createHistorique(Date date, URL url) {
		IHistorique nouvoHis = Factory.getHistorique(date, url);
		collDhisto.addHistorique(nouvoHis);
	}

		
// PAS TERMINE ------> UTILE ????
	@Override
	public List<IHistorique> rechercherHistoriqueByDate(Date date) {
		String dateFormater;
		SimpleDateFormat formater = new SimpleDateFormat("dd/MM/yyyy");
		dateFormater = formater.format(date);
		List<IHistorique> histo = collDhisto.getListeHisto();
		for (IHistorique iHistorique : histo) {
			Date dateDelHistorique = iHistorique.getDate();
			
		}
		return this.collDhisto.getListeHisto();
	}

    @Override
    public void ajouterFavoris(String nom, URL url) {    
        // TODO Auto-generated method stub
        IFavoris nouvofav = Factory.getFavoris(nom, url);
        listefav.addFavoris(nouvofav);
        this.saveFavoris();
        
    }

    @Override
    public void supprimerFavoris(IFavoris fav) {    
        // TODO Auto-generated method stub
        listefav.deleteFavoris(fav);
        this.saveFavoris();
    }
    
    @Override
    public void supprimerFavorisByNom(String nom) {    
        // TODO Auto-generated method stub
        listefav.deleteFavorisByNom(nom);
        this.saveFavoris();
        
    }
    
    @Override
    public void supprimerFavorisById(int id) {    
        // TODO Auto-generated method stub
        listefav.deleteFavorisById(id);
      
        
    }

    @Override
    public List<IFavoris> getListeFavoris() {    
        // TODO Auto-generated method stub
        return this.listefav.getListeFavoris();
    }

	@Override
	public void supprimerAllHistorique() {
		collDhisto.deleteAllHistorique();
		
	}

	@Override
	public void saveHistorique() {
		DAOHistorique.saveHistorique(collDhisto);
		
	}

	@Override
	public void loadHistorique() {
		this.collDhisto = DAOHistorique.loadHistorique();
		
	}

    @Override
    public void loadFavoris() {
    
        // TODO Auto-generated method stub
        this.listefav = DAOFavoris.loadFavoris();
    }

    @Override
    public void saveFavoris() {
    
        // TODO Auto-generated method stub
        DAOFavoris.saveFavoris(listefav);
    }

    @Override
    public void ajouterPageAccueil(URL url) {
    
        // TODO Auto-generated method stub
        pg.setPageAccueil(url);
        
    }

    @Override
    public void ajouterPageAccueilByString(String url) {
    
        // TODO Auto-generated method stub
        pg.setPageAccueilByString(url);
    }

    @Override
    public URL getPageAccueil() {
    
        // TODO Auto-generated method stub
        return pg.getPageAccueil();
    }
    

    @Override
    public void savePageAccueil() {
        DAOPageAccueil.savePageAccueil(pg);
        
    }

    @Override
    public void loadPageAccueil() {
      this.pg = DAOPageAccueil.loadPageAccueil();
        
    }

    @Override
    public URL getPageAccueilByString() {
    
        // TODO Auto-generated method stub
        return pg.getPageAccueil();
    }

	@Override
	public void deleteAllFavoris() {
		// TODO Auto-generated method stub
		listefav.deleteAllFavoris();
	}

	




}
